1. Field of the Invention
The present invention relates to a control of a communication between a storage system and a host computer, particularly to a control of a response time in the communication using a particular protocol such as, for example, the iSCSI protocol.
2. Description of the Related Art
iSCSI (internet SCSI) is a protocol for performing SCSI (Small Computer System Interface) communication over a TCP/IP (Transmission Control Protocol/Internet Protocol) network.
With iSCSI, transmission and reception of commands and data is performed in so called iSCSI PDUs (Protocol Data Units). A PDU is a unit of data which can be handled by this communication protocol, and corresponds, for example, to a packet in TCP/IP or to a frame in Ethernet (registered trademark). In iSCSI, for example, a read command is termed a Read Command PDU, while the data for a read command is termed a Data-In PDU. It should be understood that, over the network, an iSCSI PDU is transmitted and received in a TCP/IP packet. In other words, Read Command PDUs and Data-In PDUs and so on are actually transmitted and received as TCP/IP packets.
FIG. 13 shows the flow of read command processing according to the iSCSI protocol. In the following, the read command will simply be termed the command, and the data for the read command will simply be termed the data.
The computer transmits the command to the storage system (1300). The storage system analyzes the command which has been transmitted from the computer, and, as the result thereof, verifies that it is a read command.
The storage system reads out the data requested by the command from a predetermined location within the storage system, and transmits it to the computer (1305). At this time, the data is divided into a plurality of packets in order to perform communication over the TCP/IP network, and is transmitted in this form.
The computer transmits an acknowledgement which indicates that it has received the TCP/IP packet including the data, transmitted from the storage system (1310).
On receipt of the acknowledgement from the computer, the storage system confirms that the packet including the data has been received by the computer normally. And the storage system transmits to the computer a response showing that the processing of the command has been completed (1315).
By the way, in the TCP protocol, with the principal objective of alleviating the load on the network, a delayed acknowledgement response which allows for a deliberate delay of the transmission of the acknowledgement for the received packet, is regulated (hereinafter this method or function is termed the Delayed ACK). The Delayed ACK is stipulated that the acknowledgement should be delayed for 0.5 seconds, or until two packets are received (see 4.2.5 of RFC1122). However, in FIG. 13, when transmitting data in the storage system to the computer, according to the delayed ACK, the computer transmits an acknowledgement to the storage system a maximum of 0.5 seconds afterwards, even if the number of packets which the storage system transmits is only one packet. Since communication between the computer and the storage system cannot take place during this interval, accordingly there is the problem that the Delayed ACK invites an increase the command response time and a deterioration of the performance.
In order to solve this problem, the method has been considered of eliminating the Delayed ACK, but since, at the present, the Delayed ACK is implemented in many devices and operating systems, if the Delayed ACK is imprudently eliminated, then there is the problem that this may have a bad effect on applications on other devices and other operating systems.
Thus, as a method for avoiding this influence of the Delayed ACK, for example, the technique described in Japanese Patent Laid-Open Publication 2005-174097 has been proposed.